/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package gestionseguridadadministrativa.tareasprogramadas;

import administracion.delegate.GestionSeguridadDelegate;
import administracion.helper.Listas;
import administracion.helper.Utiles_MensajesDialogo;
import administracion.propiedades.Propiedades;
import gestionseguridadadministrativacliente.GestionSeguridadAdministrativaclienteApp;
import gestionseguridadadministrativacliente.jdSeguridadAdministracionLogueo;
import java.util.Calendar;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import suministros.ejb30.entity.Parametros;

/**
 *
 * @author Renato
 */
public class VerificaDesusoSistema implements org.quartz.Job{
    jdSeguridadAdministracionLogueo logueo;
    
    public void execute(JobExecutionContext jec) throws JobExecutionException {
        try {
            int minutos=Integer.MAX_VALUE;
            Date horaAcceso = Propiedades.getHoraAcceso();
            try{
                Parametros param = Listas.getParametrosID("SG2");                
                minutos=param.getParamEntero().intValue();
            }catch(NullPointerException ef){

            }
            Date horaActual=new Date();
            Calendar cal=Calendar.getInstance();
            cal.setTime(horaActual);
            cal.add(Calendar.MINUTE,  minutos*(-1));
            horaActual=cal.getTime();           
            
            if(horaActual.after(horaAcceso)){
                
                if(EstadosActuales.isEstadoDialogoLogueo()){
                    EstadosActuales.setEstadoDialogoLogueo(false);
                    String user="";
                    try {                    
                    user = Propiedades.getUsuario();
                    GestionSeguridadDelegate.getInstance().desloguear(user);
                    Propiedades.setUsuario("");
                    Propiedades.setEstado("0");
                    } catch (Exception e) {
                        Utiles_MensajesDialogo.mensajeError("Error al cerrar sesion\n" + e.getMessage());
                        e.printStackTrace();
                    }                
                    logueo = new jdSeguridadAdministracionLogueo(GestionSeguridadAdministrativaclienteApp.getApplication(), true,false, user);
                    //logueo = new jdSeguridadAdministracionLogueo(GestionSeguridadAdministrativaclienteApp.getApplication(), true,false);
                    logueo.setLocationRelativeTo(null);
                    logueo.setVisible(true);                                    
                }

            }                                   
        } catch (Exception ex) {
            ex.printStackTrace();
            Logger.getLogger(VerificaDesusoSistema.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}
